package com.example.education.service.impl;

import com.example.education.Bean.RecommendInfo;
import com.example.education.Bean.StudentInfo;

import java.util.ArrayList;

public class Recommend {

    //计算分数
    public int jisuan(RecommendInfo recommendInfo, StudentInfo studentInfo) {
        Integer grade = 0;
        //计算分数
        if (recommendInfo.getUniversity().equals("985")) {
            grade += 20;
        } else if (recommendInfo.getUniversity().equals("211")) {
            grade += 15;
        } else if (recommendInfo.getUniversity().equals("一本")) {
            grade += 10;
        } else if (recommendInfo.getUniversity().equals("二本")) {
            grade += 5;
        } else if (recommendInfo.getUniversity().equals("专科")) {
            grade += 0;
        }

        //要考的等次
        if (recommendInfo.getConfidenceLevel().equals("985")) {
            grade += 0;
        } else if (recommendInfo.getConfidenceLevel().equals("211")) {
            grade += 4;
        } else if (recommendInfo.getConfidenceLevel().equals("一本")) {
            grade += 7;
        }

        if (recommendInfo.getEnglishLevel().equals("雅思6.5")) {
            grade += 15;
        } else if (recommendInfo.getEnglishLevel().equals("CET6")) {
            grade += 10;
        } else if (recommendInfo.getEnglishLevel().equals("CET4")) {
            grade += 5;
        } else if (recommendInfo.getEnglishLevel().equals("无")) {
            grade += 0;
        }

        //考研细心计分
        if (recommendInfo.getConfidenceLevel().equals("不上岸誓不摆休")) {
            grade += 10;
        } else if (recommendInfo.getConfidenceLevel().equals("信心十足")) {
            grade += 7;
        } else if (recommendInfo.getConfidenceLevel().equals("信心一般")) {
            grade += 5;
        } else if (recommendInfo.getConfidenceLevel().equals("信心不足")) {
            grade += 0;
        }

        //每日学习时间
        if (recommendInfo.getDailyLearningTime().equals("8小时以上")) {
            grade += 15;
        } else if (recommendInfo.getDailyLearningTime().equals("6小时左右")) {
            grade += 10;
        } else if (recommendInfo.getDailyLearningTime().equals("4小时左右")) {
            grade += 5;
        } else if (recommendInfo.getDailyLearningTime().equals("2小时以下")) {
            grade += 0;
        }

        //大学数学水平
        if (recommendInfo.getMathLevel().equals("数学天才")) {
            grade += 15;
        } else if (recommendInfo.getMathLevel().equals("数学达人")) {
            grade += 10;
        } else if (recommendInfo.getMathLevel().equals("数学一般")) {
            grade += 5;
        } else if (recommendInfo.getMathLevel().equals("数学菜鸟")) {
            grade += 0;
        }

        //年级排名
        if (recommendInfo.getGradeRank().equals("前10%")) {
            grade += 5;
        } else if (recommendInfo.getGradeRank().equals("前20%")) {
            grade += 3;
        } else if (recommendInfo.getGradeRank().equals("前30%")) {
            grade += 1;
        } else if (recommendInfo.getGradeRank().equals("前40%")) {
            grade += 0;
        } else {
            grade += 0;
        }

        //考研备战时间
        if (recommendInfo.getPrepareTime().equals("1年以上")) {
            grade += 12;
        } else if (recommendInfo.getPrepareTime().equals("9个月左右")) {
            grade += 8;
        } else if (recommendInfo.getPrepareTime().equals("7个月左右")) {
            grade += 5;
        } else if (recommendInfo.getPrepareTime().equals("5个月左右")) {
            grade += 3;
        } else if (recommendInfo.getPrepareTime().equals("四个月以下")) {
            grade += 0;

        }

        //考研地区
        if (recommendInfo.getRegion().equals("一区")) {
            grade += 0;
        } else if (recommendInfo.getRegion().equals("二区")) {
            grade += 3;
        }

        //是否跨考
        if (recommendInfo.isCross) {
            grade += 5;
        } else {
            grade += 0;
        }


        if (grade + optimize(studentInfo) > 92) {
            return 92;
        } else {
            return grade + optimize(studentInfo);
        }


    }

    //细化上面的赋分机制
    public int optimize(StudentInfo studentInfo) {
        Integer grade = 0;

        if (studentInfo.getEnglishScore() > 500 && studentInfo.getEnglishScore() < 600 && studentInfo.getEnglishLevel().equals("CET4")) {
            grade += 2;
        } else if (studentInfo.getEnglishScore() > 500 && studentInfo.getEnglishScore() < 600 && studentInfo.getEnglishLevel().equals("CET6")) {
            grade += 4;
        } else if (studentInfo.getEnglishScore() > 600 && studentInfo.getEnglishLevel().equals("CET4")) {
            grade += 5;
        } else if (studentInfo.getEnglishScore() > 600 && studentInfo.getEnglishLevel().equals("CET6")) {
            grade += 7;
        } else if (studentInfo.getEnglishScore() > 9 && studentInfo.getEnglishLevel().equals("雅思")) {
            grade += 7;
        } else if (studentInfo.getEnglishScore() > 8 && studentInfo.getEnglishLevel().equals("雅思")) {
            grade += 5;
        } else if (studentInfo.getEnglishScore() > 7 && studentInfo.getEnglishLevel().equals("雅思")) {
            grade += 3;
        } else if (studentInfo.getEnglishScore() > 6 && studentInfo.getEnglishLevel().equals("雅思")) {
            grade += 1;
        }
        //将获奖情况的key值存入set集合中

//        Set<String> setKey = studentInfo.getReceivedAwards().keySet();
//
//        //根据不同赛事的不同等级的奖项来赋分
//        for (int i = 0; i < studentInfo.getReceivedAwards().size(); i++) {
//            //先判断是否是全国大学生数学建模竞赛再根据奖项等级来赋分
//           if(setKey.contains("全国大学生数学建模竞赛")){
//               if(studentInfo.getReceivedAwards().get("全国大学生数学建模竞赛").equals("国家一等奖")){
//                   grade += 10;
//               }else if(studentInfo.getReceivedAwards().get("全国大学生数学建模竞赛").equals("国家二等奖")){
//                   grade += 8;
//               }else if(studentInfo.getReceivedAwards().get("全国大学生数学建模竞赛").equals("国家三等奖")){
//                   grade += 6;
//               }else if(studentInfo.getReceivedAwards().get("全国大学生数学建模竞赛").equals("省级一等奖")){
//                   grade += 4;
//               }else if(studentInfo.getReceivedAwards().get("全国大学生数学建模竞赛").equals("省级二等奖")){
//                   grade += 1;
//                }
//           }
//
//              //先判断是否是全国大学生程序设计竞赛再根据奖项等级来赋分
//              if(setKey.contains("全国大学生程序设计竞赛")) {
//                  if (studentInfo.getReceivedAwards().get("全国大学生程序设计竞赛").equals("国家一等奖")) {
//                      grade += 10;
//                  } else if (studentInfo.getReceivedAwards().get("全国大学生程序设计竞赛").equals("国家二等奖")) {
//                      grade += 8;
//                  } else if (studentInfo.getReceivedAwards().get("全国大学生程序设计竞赛").equals("国家三等奖")) {
//                      grade += 6;
//                  } else if (studentInfo.getReceivedAwards().get("全国大学生程序设计竞赛").equals("省级一等奖")) {
//                      grade += 4;
//                  } else if (studentInfo.getReceivedAwards().get("全国大学生程序设计竞赛").equals("省级二等奖")) {
//                      grade += 1;
//                  }
//              }
//              //先判断是否是中国“互联网+”大学生创新创业大赛再根据奖项等级来赋分
//               if(setKey.contains("中国“互联网+”大学生创新创业大赛")) {
//                   if (studentInfo.getReceivedAwards().get("中国“互联网+”大学生创新创业大赛").equals("国家一等奖")) {
//                       grade += 10;
//                   } else if (studentInfo.getReceivedAwards().get("中国“互联网+”大学生创新创业大赛").equals("国家二等奖")) {
//                       grade += 8;
//                   } else if (studentInfo.getReceivedAwards().get("中国“互联网+”大学生创新创业大赛").equals("国家三等奖")) {
//                       grade += 6;
//                   } else if (studentInfo.getReceivedAwards().get("中国“互联网+”大学生创新创业大赛").equals("省级一等奖")) {
//                       grade += 4;
//                   } else if (studentInfo.getReceivedAwards().get("中国“互联网+”大学生创新创业大赛").equals("省级二等奖")) {
//                       grade += 1;
//                   }
//               }
//              //先判断是否是“挑战杯”全国大学生课外学术科技作品竞赛再根据奖项等级来赋分
//              if(setKey.contains("“挑战杯”全国大学生课外学术科技作品竞赛")) {
//                  if (studentInfo.getReceivedAwards().get("“挑战杯”全国大学生课外学术科技作品竞赛").equals("国家一等奖")) {
//                      grade += 10;
//                  } else if (studentInfo.getReceivedAwards().get("“挑战杯”全国大学生课外学术科技作品竞赛").equals("国家二等奖")) {
//                      grade += 8;
//                  } else if (studentInfo.getReceivedAwards().get("“挑战杯”全国大学生课外学术科技作品竞赛").equals("国家三等奖")) {
//                      grade += 6;
//                  } else if (studentInfo.getReceivedAwards().get("“挑战杯”全国大学生课外学术科技作品竞赛").equals("省级一等奖")) {
//                      grade += 4;
//                  } else if (studentInfo.getReceivedAwards().get("“挑战杯”全国大学生课外学术科技作品竞赛").equals("省级二等奖")) {
//                      grade += 1;
//                  }
//              }
//                //先判断是否是ACM再根据奖项等级来赋分
//                  if (setKey.contains("ACM")) {
//                      if (studentInfo.getReceivedAwards().get("ACM").equals("国家一等奖")) {
//                          grade += 10;
//                      } else if (studentInfo.getReceivedAwards().get("ACM").equals("国家二等奖")) {
//                          grade += 8;
//                      } else if (studentInfo.getReceivedAwards().get("ACM").equals("国家三等奖")) {
//                          grade += 6;
//                      } else if (studentInfo.getReceivedAwards().get("ACM").equals("省级一等奖")) {
//                          grade += 4;
//                      } else if (studentInfo.getReceivedAwards().get("ACM").equals("省级二等奖")) {
//                          grade += 1;
//                      }
//                  }
//                  //先判断是否是华为软件精英挑战赛再根据奖项等级来赋分
//                    if (setKey.contains("华为软件精英挑战赛")) {
//                        if (studentInfo.getReceivedAwards().get("华为软件精英挑战赛").equals("国家一等奖")) {
//                            grade += 10;
//                        } else if (studentInfo.getReceivedAwards().get("华为软件精英挑战赛").equals("国家二等奖")) {
//                            grade += 8;
//                        } else if (studentInfo.getReceivedAwards().get("华为软件精英挑战赛").equals("国家三等奖")) {
//                            grade += 6;
//                        } else if (studentInfo.getReceivedAwards().get("华为软件精英挑战赛").equals("省级一等奖")) {
//                            grade += 4;
//                        } else if (studentInfo.getReceivedAwards().get("华为软件精英挑战赛").equals("省级二等奖")) {
//                            grade += 1;
//                        }
//                    }
//                    //先判断是否是蓝桥杯再根据奖项等级来赋分
//                      if (setKey.contains("蓝桥杯")) {
//                          if (studentInfo.getReceivedAwards().get("蓝桥杯").equals("国家一等奖")) {
//                              grade += 10;
//                          } else if (studentInfo.getReceivedAwards().get("蓝桥杯").equals("国家二等奖")) {
//                              grade += 8;
//                          } else if (studentInfo.getReceivedAwards().get("蓝桥杯").equals("国家三等奖")) {
//                              grade += 6;
//                          } else if (studentInfo.getReceivedAwards().get("蓝桥杯").equals("省级一等奖")) {
//                              grade += 4;
//                          } else if (studentInfo.getReceivedAwards().get("蓝桥杯").equals("省级二等奖")) {
//                              grade += 1;
//                          }
//                      }
//                      //先判断是否是阿里云天池大数据竞赛再根据奖项等级来赋分
//                        if (setKey.contains("阿里云天池大数据竞赛")) {
//                            if (studentInfo.getReceivedAwards().get("阿里云天池大数据竞赛").equals("国家一等奖")) {
//                                grade += 10;
//                            } else if (studentInfo.getReceivedAwards().get("阿里云天池大数据竞赛").equals("国家二等奖")) {
//                                grade += 8;
//                            } else if (studentInfo.getReceivedAwards().get("阿里云天池大数据竞赛").equals("国家三等奖")) {
//                                grade += 6;
//                            } else if (studentInfo.getReceivedAwards().get("阿里云天池大数据竞赛").equals("省级一等奖")) {
//                                grade += 4;
//                            }
//                        }
//        }


        //根据毕业学校层次以及该学校的专业排名来赋分
        if (schoolRankA1.contains(studentInfo.getGraduationSchool())) {
            grade += 8;
        } else if (schoolRankA2.contains(studentInfo.getGraduationSchool())) {
            grade += 6;
        } else if (schoolRankA3.contains(studentInfo.getGraduationSchool())) {
            grade += 4;
        } else if (schoolRankB1.contains(studentInfo.getGraduationSchool())) {
            grade += 2;
        }

        return grade;
    }

    //一个存贮比赛名称的ArrayList
    private ArrayList<String> competitionName = new ArrayList<String>() {
        {
            add("全国大学生数学建模竞赛");
            add("全国大学生程序设计竞赛");
            add("中国“互联网+”大学生创新创业大赛");
            add("“挑战杯”全国大学生课外学术科技作品竞赛");
            add("ACM");
            add("华为软件精英挑战赛");
            add("蓝桥杯");
            add("阿里云天池大数据竞赛");
        }
    };

    //一个存贮学校专业排名A+的ArrayList
    private ArrayList<String> schoolRankA1 = new ArrayList<String>() {
        {
            add("北京航空大学");
            add("浙江大学");
            add("国防科技大学");

        }
    };

    //一个存贮学校专业排名A的ArrayList
    private ArrayList<String> schoolRankA2 = new ArrayList<String>() {
        {
            add("北京大学");
            add("清华大学");
            add("华东师范大学");
            add("南京大学");
            add("武汉大学");
        }
    };
    //一个存贮学校专业排名A-的ArrayList
    private ArrayList<String> schoolRankA3 = new ArrayList<String>() {
        {
            add("天津大学");
            add("东北大学");
            add("哈尔滨工业大学");
            add("同济大学");
            add("上海交通大学");
            add("苏州大学");
            add("中国科学技术大学");
            add("四川大学");

        }
    };

    //一个存贮学校专业排名B+的ArrayList
    private ArrayList<String> schoolRankB1 = new ArrayList<String>() {
        {
            add("北京交通大学");
            add("北京工业大学");
            add("北京邮电大学");
            add("大连理工大学");
            add("吉林大学");
            add("复旦大学");
            add("东南大学");
            add("南京航空航天大学");
            add("山东大学");
            add("华南理工大学");
            add("重庆大学");
            add("电子科技大学");
            add("西北大学");
            add("西北工业大学");
        }
    };

}
